package xin.common.file;

import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import xin.common.date.DateUtils;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;

/**
 * <pre>
 * 文件上传器顶层接口
 * </pre>
 *
 * @author lixin_ma@outlook.com
 * @version 1.0
 * @since 2018/9/21
 */
public interface Uploader {
    /**
     * 文件长传
     * @param file 文件
     * @param request http请求
     * @param response http应答
     * @param basePath 基础路径
     * @param subDir 子路径
     * @param uploadResult 上传结果（包含文件信息）
     */
    public void upload(MultipartFile file, HttpServletRequest request, HttpServletResponse response, String basePath, String subDir, UploadResult uploadResult);

    /**
     * 用于获取拼接文件名称-自定义规则拼接文件保存路径
     * @param file 文件
     * @return
     */
    public String getFileName(MultipartFile file);
}
